#define _CRT_SECURE_NO_WARNINGS 1


//typedef struct Point
//{
//	float x;
//	float y;
//}Pt;
//float MHTDistance(Pt s1,Pt s2)
//{
//	return abs(s1.x - s2.x) + abs(s1.y - s2.y);
//}
//
//float TrueDistance(Pt s1,Pt s2)
//{
//	double tmp = (s1.x - s2.x)* (s1.x - s2.x) + (s1.y - s2.y)* (s1.y - s2.y);
//	return pow(tmp, 0.5);
//}
//
//int main()
//{
//	Pt s1;
//	Pt s2;
//	scanf("%f,%f", &s1.x, &s1.y);
//	scanf("%f,%f", &s2.x, &s2.y);
//	printf("MHTDistance=%.2f\n", MHTDistance(s1, s2));
//	printf("TrueDistanc=%.2f", TrueDistance(s1, s2));
//	return 0;
//}

#include<stdio.h>
#include<stdlib.h>
typedef struct Student
{
	char name[10];
	int score;

}Stu;


int score_cmp(const void* s1,const void* s2)
{
	return ((Stu*)s2)->score - ((Stu*)s1)->score;
}
void StructSort(Stu sap[], int n)
{
	qsort(sap,n,sizeof(sap[0]), score_cmp);
}

int main()
{
	int i = 0;
	Stu sap[4];
	for (i = 0; i < 4; i++)
	{
		scanf("%s %d", sap[i].name, &sap[i].score);
	}
	StructSort(sap,4);
	for (i = 0; i < 4; i++)
	{
		printf("%s %d\n", sap[i].name, sap[i].score);
	}
	return 0;
}


//#include<stdio.h>
//typedef struct Student
//{
//	char name[10];
//	int score;
//}Stu;
//
//float StructAvg(Stu sap[], int n, float* m)
//{
//	int i = 0;
//	for (i = 0; i < 4; i++)
//	{
//		*m += sap[i].score;
//	}
//	*m /= 4;
//	return *m;
//}
//int main()
//{
//	int i = 0;
//	float avg = 0;
//	Stu sap[4];
//	for (i = 0; i < 4; i++)
//	{
//		scanf("%s %d", sap[i].name, &sap[i].score);
//	}
//	StructAvg(sap, 4, &avg);
//	printf("Avg=%.1f\n", avg);
//	for (i = 0; i < 4; i++)
//	{
//		if (sap[i].score >= avg)
//			printf("%s %d\n", sap[i].name, sap[i].score);
//	}
//	return 0;
//}